package com.flyou.ccnucenter.utils;

import android.content.Context;
import android.util.TypedValue;
/**
 * ============================================================  
* 项目名称：androidTools   
* 
* 类名称：DensityUtils   
* 
* 类描述：   常用单位转换的辅助类
*        1.dp转px
*        2.sp转px
*        3.px转dp
*        4.px转sp
*        
* 
* 创建人：flyou  
* 
* 创建时间：2015-3-31 下午12:10:11  
*  
* 修改备注：   
* 
* 版本：@version    
*   ============================================================
 */
public class DensityUtils {
  private DensityUtils() {
    throw new UnsupportedOperationException("cannot be instantiated");
  }

  /**
   * dp转px
   * 
   * @param context
   * @param val
   * @return
   */
  public static int dp2px(Context context, float dpVal) {
    return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpVal, context.getResources()
        .getDisplayMetrics());
  }

  /**
   * sp转px
   * 
   * @param context
   * @param val
   * @return
   */
  public static int sp2px(Context context, float spVal) {
    return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spVal, context.getResources()
        .getDisplayMetrics());
  }

  /**
   * px转dp
   * 
   * @param context
   * @param pxVal
   * @return
   */
  public static float px2dp(Context context, float pxVal) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (pxVal / scale);
  }

  /**
   * px转sp
   * 
   * @param fontScale
   * @param pxVal
   * @return
   */
  public static float px2sp(Context context, float pxVal) {
    return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
  }

}
